1. Field of the Invention
The present invention relates to a method for forming transition metrics in a receiver of a digital cellular radio system, the receiver being based on a hardware implementation of a Viterbi decoding and the system utilizing predetermined metrics and a signal coded by one or more convolutional codes.
The invention further relates to a receiver of a digital cellular radio system, comprising the hardware implementation of a transition metrics calculation unit for Viterbi decoding, the system utilizing predetermined metrics and a signal coded by one or more convolutional codes.
2. Description of Related Art
A convolutional code is recursive, and it is formed in a known manner by a finite-state coder whose state depends only on the previous symbols of the code. The code words of the convolutional code, which are symbols representing bits or combinations of bits, may be depicted by means of a trellis diagram. The trellis represents the co-dependence between the states of the Viterbi decoding and received symbols. By utilizing trellis, a symbols received are estimated. A convolutional coder may be seen as a shift register having the length m, resulting in that it may be depicted by a polynomial of the degree m at most. This means that the polynomial coefficients represent the taps of the filter, and the polynomials are referred to as generator polynomials of the convolutional code. By means of redundancy created by convolutional coding, the errors caused by the channel on the message transmitted are reduced. The prior art teaches using several generating polynomials for the same signal in the convolutional coding, whereby one bit to be transmitted will become a symbol comprising a combination of bits.
In a finite-state discretely-timed Markov process, with white noise influencing the estimates concerning the conditions of the cellular radio system, the optimum recursive algorithm is the Viterbi algorithm. The received signal may be Viterbi decoded at a base station of the cellular radio system or at a subscriber end terminal. In the Viterbi block of the receiver, the trellis of the convolutional-coded message is found, whereby the transition metrics based on the convolutional polynomial of the message transmitted are computed. Thus, in Viterbi decoding, the symbols corresponding to the information transmitted are detected, the symbols representing the bits or bit combinations of the message transmitted. As known, the Viterbi algorithm is used in signal detecting and decoding. From the signal, the Viterbi algorithm generates an estimate for an ML sequence (ML=Maximum Likelihood), and soft decisions for the channel decoding functions. The ML estimate comprises estimates of the symbol sequences within the signal. The ML method is discussed in: Proakis J. G., Digital Communications, McGraw-Hill Book Company, 1989, chapter 4.2, and the hardware implementation of the Viterbi algorithm is discussed in the publication: Fettweis, G. and H. Meyer, High-Speed Parallel Viterbi Decoding: Algorithm and VLSI-Architecture, IEEE Communications Magazine, Vol. 29(5), 1991, which are incorporated herein as reference.
Due to the Viterbi algorithm often being too demanding a task for a digital signal processing program to perform within the processing time allowed by the receiver, separate Viterbi hardware has to be used. The hardware block in the prior art solutions is convolutional-polynomial-specific, which means that the hardware solution has to be redesigned and reimplemented in case the generator polynomials of the convolutional code are changed. This is described in greater detail in J. Hagenauer, P. Hoeher: A Viterbi Algorithm with Soft-decision Outputs and its Applications, IEEE GLOBECOM 1989, Dallas, Tex., November 1989, and in: Digital Communications, by Proakis J. G., McGraw-Hill Book Company, 1989, chapters 5.3.2, 5.3.3 and 5.3.4, which are herein incorporated as reference.
It is therefore an object of the present invention to implement a receiver whose hardware solution does not have to be modified due to changing the convolutional coding or due to adding new convolutional polynomials. The Viterbi block may be made programmable if the transition metrics calculation unit takes into account the possibility to use different convolutional polynomials.